1. Field of the Invention
The present invention relates generally to data communications between a host computer and a peripheral device, and more particularly, to a multiple interface input/output port that enables a peripheral device to be connected to any one of a plurality of different types of interface buses of a host computer.
2. Description of the Prior Art
A variety of so-called interface buses exist for enabling communication between a host computer and one or more peripheral devices, such as disk drives, printers, scanners, modems and the like. These interface buses include the Small Computer Systems Interface (SCSI) bus, which has several versions (i.e., SCSI-1, SCSI-2 and SCSI-3), and a number of parallel port buses, including the standard uni-directional parallel port found in early IBM PCs, the bi-directional parallel port found in IBM PS-2s, the extended capability port (ECP), the enhanced parallel port (EPP), and the IEEE-1284 standard parallel port. A host computer might have one or more of these interface buses, or "ports", to which peripheral devices can be connected. In other cases, the host computer may only have a single interface port for connecting peripheral devices. Communication of data over each of these different interface buses is usually performed in accordance with a communications protocol specific to the particular bus structure.
Unfortunately, the existence of such a variety of interface buses and associated communication protocols creates compatibility problems and generally makes the purchase of peripheral equipment more difficult and confusing for a typical consumer. For example, a consumer may purchase a new disk drive that is configured to communicate across a SCSI-2 interface, only to find that the computer to which the disk drive is to be attached only has a single, parallel port interface. In an attempt to provide a solution to this problem, a number of vendors provide parallel port-to-SCSI translators that can be connected between a SCSI peripheral and the parallel port of a personal computer for enabling communication of SCSI commands to the peripheral device via the host parallel port interface. While such an adapter provides a solution to the incompatibility problem, the consumer is faced with the cost of an additional component, as well as the time and effort needed to connect the adapter and install any necessary driver software.
Farago, U.S. Pat. No. 4,972,470, describes a "programmable connector" for a host computer that can be programmed to reconfigure its physical connections to match the serial interface characteristics, e.g., RS-232, RS-422 or RS-485, of a peripheral device to which it is connected. For example, the connector of Farago allows the user to reconfigure the I/O interface of the host computer so that it matches the I/O interface of a particular peripheral device that the user wishes to connect. While this may eliminate the need to purchase a different interface adapter for each new application, the programmable connector of Farago requires the user to identify the serial interface protocol, e.g., RS-232, RS-422 or RS-485, of the peripheral device, and then to download the appropriate programming instructions to the programmable connector in order to reconfigure the physical interface of the connector to match that of the peripheral interface. Unskilled users may find such programming difficult and confusing. Finally, because the connector of Farago simply reconfigures the necessary timing, pin-outs, voltages and other physical parameters to match the physical interface characteristics of the device to which it is connected, it does not provide any sort of logical protocol translation necessary to enable communication between interfaces that operate in accordance with more sophisticated interface protocols, such as a SCSI protocol or the more advanced parallel port protocols. Latif et al., U.S. Pat. No. 5,289,580, discloses an input/output controller that can be programmed to interact with a variety of interface protocols, such as IPI, SCSI and Message Level Interface (MLI). While the input/output controller provides the necessary logical protocol translation for enabling communication between two interface buses that communicate in accordance with different interface protocols, it too must be "programmed" to provide the appropriate protocol translation and does not automatically detect the type of interface bus to which it is connected. Consequently, the input/output controller of Latif et al. requires significant knowledge and input on the part of the user.
Accordingly, there is a need for a multiple interface input/output port adapted for use in a peripheral device that is capable of automatically detecting the type of interface bus to which it is connected in a host computer and then routing communications between the two devices through an appropriate interface adapter, if necessary, in a manner transparent to the user. Such apparatus would eliminate the need for cumbersome adapter devices and would provide a more user-friendly operation. The present invention satisfies this need.